package pe.gob.servir.apps.censodirectivo.ejb.service;

import java.util.List;

import javax.ejb.Remote;

import pe.gob.servir.apps.censodirectivo.excepcion.ServiceExcepcion;
import pe.gob.servir.apps.censodirectivo.model.bean.AreaInteres;
import pe.gob.servir.apps.censodirectivo.model.bean.DatoAcademico;
import pe.gob.servir.apps.censodirectivo.model.bean.DirectivoPublico;
import pe.gob.servir.apps.censodirectivo.model.bean.ExperienciaLaboral;
import pe.gob.servir.apps.censodirectivo.model.bean.MensajeRespuesta;

@Remote
public interface DirectivoPublicoServiceRemote {

	DirectivoPublico obtenerPorId(Long id);
	
	MensajeRespuesta registrarAreaInteres(AreaInteres areaInteres) throws ServiceExcepcion;
	
	MensajeRespuesta editarAreaInteres(AreaInteres areaInteres) throws ServiceExcepcion;
	
	MensajeRespuesta registrarExperienciaLaboral(ExperienciaLaboral experienciaLaboral) throws ServiceExcepcion;
	
	MensajeRespuesta editarExperienciaLaboral(ExperienciaLaboral experienciaLaboral) throws ServiceExcepcion;
	
	MensajeRespuesta eliminarExperienciaLaboral(ExperienciaLaboral experienciaLaboral) throws ServiceExcepcion;

	MensajeRespuesta actualizaDirectivoPublico(DirectivoPublico directivoPublico) throws ServiceExcepcion;

	MensajeRespuesta registrarDatosAcademicos(DatoAcademico datoAcademico) throws ServiceExcepcion;
	
	MensajeRespuesta editarDatosAcademicos(DatoAcademico datoAcademico) throws ServiceExcepcion;
	
	MensajeRespuesta eliminarDatosAcademicos(DatoAcademico datoAcademico) throws ServiceExcepcion;
	
	MensajeRespuesta registarDirectivoPublico(DirectivoPublico directivoPublico) throws ServiceExcepcion;
	
	List<DirectivoPublico> filtrarListaDirectivoPublico(DirectivoPublico directivoPublico) throws ServiceExcepcion;
	
	List<DirectivoPublico> buscarDirectivoBasicoPorId(Long id) throws ServiceExcepcion;
	
	List<DatoAcademico> filtrarListaDatosAcademicos(long personaId, long tipoDatoAcademicoId) throws ServiceExcepcion;
	
	List<ExperienciaLaboral> filtrarListaExperienciaLabora(long personaId, long tipoExperienciaLaboralId) throws ServiceExcepcion;
	
	List<AreaInteres> filtrarListaAreaInteres(long personaId, long prioridad, long areaInteresId) throws ServiceExcepcion;
}
